/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ipartek.formacion.gestformwww.controlador;

import com.ipartek.formacion.gestformwww.modelo.ModeloDiaClase;
import com.ipartek.formacion.gestformwww.modelo.beans.excepciones.GestorFormacionExcepcion;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.*;

/**
 *
 * @author Sara y Victor
 */
public class BorrarDiasClaseAccion implements Accion{
  
    private final String visualizarcursos="visualizar-curso-accion";
//    private final String listaralumnos="listar-alumnos-accion";
/**
 * Descripción: ejecuta la acción de borrado del alumno
 * @param servlet
 * @param request
 * @param response
 * @return devuelve el router que dirige a la página que corresponda (a Inicio o a Principal)
 */
    public AccionRouter ejecuta(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response) {
        HttpSession sesion = request.getSession();
         AccionServlet as=(AccionServlet) servlet;
        AccionRouter router = null;
        ArrayList<String> mensajes= new ArrayList<String>();
        Boolean correcto=false;

        boolean ejecutar = Verificador.sinReenvio("aleatorioBorrarDias", sesion, request);

        if (sesion.getAttribute("usuario")!= null && request.getMethod().equalsIgnoreCase("POST")) {

            ModeloDiaClase modelo = (ModeloDiaClase) servlet.getServletContext().getAttribute("ModeloDiaClase");

            if (request.getParameterValues("idClase")!=null){ //Se elimina un único día
                ArrayList ids=new ArrayList();
                try{
                    for(String idStr:((String[])request.getParameterValues("idClase"))){
                        ids.add(Integer.parseInt(idStr));
                    }
                }catch(NumberFormatException ex){
                    ids=null;
                }
                if (ids!=null && ejecutar){
                    try {
                        modelo.borrarDiasClase(ids);
                        correcto=true;
                    } catch (GestorFormacionExcepcion ex) {
                         Logger.getLogger(BorrarDiasClaseAccion.class.getName()).log(Level.SEVERE, null, ex);
                        sesion.setAttribute("excepciones", ex.getMessage());
                    }
                }
            }
            if (correcto){
                mensajes.add("mensaje-borrar-diaclase");
                sesion.setAttribute("mensajes",mensajes);
            }
            try {
                router=as.getFactory().getAction(as.getNombreClaseRecurso(visualizarcursos),servlet.getClass().getClassLoader()).ejecuta(servlet, request, response);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(BorrarDiasClaseAccion.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                Logger.getLogger(BorrarDiasClaseAccion.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(BorrarDiasClaseAccion.class.getName()).log(Level.SEVERE, null, ex);
            }
            
        }else{
            router = new AccionRouter("inicio");
        }
        return router;
    }



}
